Expert systems are well known. They have been described as follows:
Expert System
A computer program that uses symbolic knowledge and inference to reach conclusions. It derives most of its power from its knowledge. The key components of an expert system are an inference engine and a knowledge base. The separation of control (the inference engine) from knowledge (knowledge base) is a hallmark of an expert system. Other components of an expert system include a user interface, a knowledge-acquisition module, and an explanatory interface.
An expert system derives most of its power from its knowledge rather than its inferencing ability. Expert systems are applied to the class of problems in which no simple algorithmic solution is known. To qualify as an expert system it must attain levels of performance roughly equivalent to a human expert. Most expert systems are able to explain their reasoning. Expert systems are generally able to reason about their own inference processes. Other advantages of expert systems are that they do not forget, they consider all details, they don't overlook remote possibilities and they do not jump to conclusions.
In contrast with ordinary computer programs, expert systems can be incrementally modified with little difficulty—at least as compared to conventional programs. The knowledge in an expert system is more available to scrutiny than it is in a conventional program where knowledge may be intertwined with procedure . . . Expert systems are more robust than conventional programs—they are more likely to be able to handle unexpected situations.
There are a number of criteria for the use of expert systems: One is the existence of expertise in the area. The task should be a complex problem with multiple interacting subtasks where there appears to be no fixed order of problem solution. It is useful when the solution needs to be explained, when what—if analysis is desirable, or when it is known that the system will be frequently revised.
Mercadal, D. 1990. Dictionary of Artificial Intelligence. p 96-97. NY: Van Nostrand Reinhold
It should be noted the term rulebase as used herein is synonymous with the expression knowledge base above.
The standard method used by expert systems for forward-chaining inferencing is known as the Rete algorithm and aims to minimize the amount of effort required for an inference cycle whenever input facts change. The Rete algorithm will be explained in more detail when describing the preferred embodiment of present invention.
The Rete algorithm was invented in 1979—a bygone era of computing. Since then, the application of expert systems, including the environment that they work within, has changed dramatically:    Systems must now provide high levels of scalability to support thousands of concurrent users, particularly through the use of stateless application development;    Today's Internet technologies mean that systems are largely transactional by nature;    Modern user interfaces are better at collecting many items of data per screen (or transaction);    Today's processors are much faster with large onboard caches.    Expert systems that perform batch processing and provide engine-based services are now a common requirement;    Integration of expert systems with corporate databases is a standard requirement.
The forward-chaining inferencing system and method of the present invention allows expert systems to better deal with these significant changes.